package dao;

import java.util.ArrayList;
import java.util.List;

import modele.Annee;
import modele.Emplacement;
import modele.Theme;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import services.persistance.BaseDAO;

public class EmplacementDao {

	public static void ajouterEmplacement(Emplacement theme) {
		BaseDAO.getInstance().ajouter(theme);
	}

	public static void modifierEmplacement(Emplacement theme) {
		BaseDAO.getInstance().modifier(theme);
	}

	public static void supprimerEmplaement(Emplacement theme) {
		BaseDAO.getInstance().supprimer(theme);
	}
	
	public static Emplacement getEmplacement(long idEmlacement) {
		return (Emplacement) BaseDAO.getInstance().getObject(Emplacement.class, idEmlacement);
	}



	public static List getListeEmplacements(String niveau_base) {
		List liste = new ArrayList<>();
	    if ( "region".equals(niveau_base) ){
			return BaseDAO.getInstance().getListObject("queryListeNomRegions",liste);

	    }
	    if ( "province".equals(niveau_base) ){
			return BaseDAO.getInstance().getListObject("queryListeNomProvinces",liste);

	    }
	    if ( "commune".equals(niveau_base) ){
			return BaseDAO.getInstance().getListObject("queryListeNomCommunes",liste);

	    }
	    if ( "poi".equals(niveau_base) ){
			return BaseDAO.getInstance().getListObject("queryListeNomPOI",liste);

	    }
		return BaseDAO.getInstance().getListObject("queryListeNomRegions",liste);


	}

	public static ArrayList<Emplacement> rechercherThemesParCriteresParAdmin(
			Emplacement emp) {
		Criteria criteria = BaseDAO.getInstance().getSession()
				.createCriteria(Theme.class);
		criteria.add(Restrictions.like("nom", "%" + emp.getNom() + "%"));
		criteria.add(Restrictions.like("description",
				"%" + emp.getDescription() + "%"));
		criteria.add(Restrictions.eq("population", emp.getPopulation()));

		criteria.createCriteria("administrateur").add(
				Restrictions.eq("identifiant", emp.getAdministrateur()
						.getIdentifiant()));

		return (ArrayList<Emplacement>) BaseDAO.getInstance()
				.getListObjectByCriteria(criteria);
	}

}
